#ifndef SSignal2_H
#define SSignal2_H
#include "Global_Signal.h"
#include "abstractSignal.h"

template <class T, class U>
class sSignal2 : public AbstractSignal
{
        public :

        /*************************************************************/
        /*					Propriétés	     */
        /*************************************************************/

        T arg1;
        U arg2;

        /*************************************************************/
        /*					Constructeur         */
        /*************************************************************/

        sSignal2(int (*apSignal)(T,U), T arg, U aArg2);

        /*************************************************************/
        /*					Méthodes	  */
        /*************************************************************/

        void Update();


};

template <class T, class U>
sSignal2<T,U>::sSignal2(int (*apSignal)(T, U), T arg, U aArg2) : pSignal(apSignal),arg1(arg), arg2(aArg2){}

template <class T, class U>
void sSignal2<T,U>::Update()
{
        if((*pSignal)(arg1, arg2))
        {
                Run();
        }
}
#endif // SSignal2_H
